package com.rj.bd.kj.zdy;


public class SimpleDataMaskerEncryptor extends MyAbstractClassZDY {


    /**
     * @desc  : 简单的脱敏方法，例如隐藏中间字符
     * @param data
     * @return
     */
    @Override
    public String mask(String data) {
        if (data == null || data.length() <= 4) {
            return data;
        }
        char[] chars = data.toCharArray();
        for (int i = 2; i < chars.length - 2; i++) {
            chars[i] = '*';
        }
        return new String(chars);
    }


    /**
     * @desc  : 简单的加密方法，例如使用异或操作
     */
    private static final char KEY = 'K'; // 简单的加密密钥字符

    @Override
    public String encrypt(String data) {
        char[] chars = data.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            chars[i] = (char) (chars[i] ^ KEY);
        }
        return new String(chars);
    }


    /**
     * @desc  : 简单的解密方法，例如使用异或操作
     * @param encryptedData
     * @return
     */
    @Override
    public String decrypt(String encryptedData) {
        return encrypt(encryptedData); // 异或操作是对称的，所以加密和解密方法相同
    }
}
